// Loesung_von_Aufgabe_2.4.5_2_Mond

float w; // Winkel
boolean Rotation = true; // true --> Drehung im Uhrzeigersinn; false --> Drehung gegen den Uhrzeigersinn

void setup() 
{
  size(400, 400);
}

void draw() 
{
  background(255);

  translate(200, 200); // Verschiebung des Koordinatensystems in die Fenstermitte

  if (Rotation == true)
  {
    rotate(w); // Rotation des Koordinatensystems um den Winkel w
    w = w + 0.01; // Winkelzunahme im Bogenmaß
  }

  if (Rotation == false)
  {
    rotate(w); // Rotation des Koordinatensystems um den Winkel w
    w = w - 0.01; // Winkelabnahme im Bogenmaß
  }

  // Erde
  fill(100, 100, 230);
  ellipse(0, 0, 40, 40);

  // Umlaufbahn
  stroke(150);
  strokeWeight(1);
  noFill();
  ellipse(0, 0, 200, 200);

  // Linien und Dreiecke für die Vektoren Fg und Fz
  stroke(0, 255, 0);    
  strokeWeight(3);
  line(65, 0, 100, 0); // Fg
  stroke(0, 0, 255);

  stroke(255, 0, 0);    
  strokeWeight(3);
  line(130, 0, 100, 0); // Fz

  noStroke();
  fill(255, 0, 0);
  triangle(120, -5, 140, 0, 120, 5); // Fz
  text("Fz", 145, 0);

  fill(0, 255, 0);
  triangle(80, -5, 60, 0, 80, 5); // Fg
  text("Fg", 40, 0);

  // Linien und Dreiecke für v
  if (Rotation == true)
  {
    stroke(0, 0, 255);    
    strokeWeight(3);
    line(100, 0, 100, 20); // v

    fill(0, 0, 255);
    triangle(103, 15, 100, 30, 97, 15); // v
    text("v", 97, 50);
  }

  if (Rotation == false)
  {
    stroke(0, 0, 255);    
    strokeWeight(3);
    line(100, 0, 100, -20); // v

    fill(0, 0, 255);
    triangle(103, -15, 100, -30, 97, -15); // v
    text("v", 97, -50);
  }

  // Mond
  noStroke();
  fill(0);
  ellipse(100, 0, 15, 15);
}